A inicios de los 50', comenzó la necesidad de crear computadoras que resuelvan problemas matemáticos de procesos reales, tales como los que aparecen en disciplinas como la aerodinámica, sismología, meteorología, física atómica, nuclear y de plasmas. Estos problemas se caracterizan por necesitar una precisión elevada y programas que realicen de forma repetitiva operaciones aritméticas en coma flotante con grandes matrices de números. Para manejar este tipo de problemas se han desarrollado supercomputadoras, capaces de realizar cientos de millones de operaciones en como flotante por segundo, pero estas máquinas tienen un uso limitado y debido a su precio un mercado limitado. Otro tipo de sistema diseñado para las necesidades de la computación vectorial se trata de los computadores matriciales, estos no realizan procesamiento escalar y están configurados como dispositivos periféricos para que los usuarios de grandes computadoras y minicomputadoras puedan ejecutar partes vectorizadas de sus programas.
¿Cuál es la principal tarea de estos computadores?
Es realizar operaciones sobre matrices o vectores numéricos en como flotante. Estas operaciones consistirán en funciones aritméticas y lógicas aplicadas sobre las componentes de los vectores. La diferencia entre un procesador vectorial y uno escalar estriba en que el procesador vectorial puede decodificar instrucciones cuyos operandos son vectores completos.
Organización de los procesadores vectoriales
ALU segmentada: puesto que las operaciones en coma flotante son bastante complejas, existe la posibilidad de descomponer una operación en coma flotante en etapas (comparar, desplazar, sumar, normalizar), de manera que las diferentes etapas puedan operar concurrentemente sobre conjunto de datos distintos. Debe de quedar claro que esta organización es adecuada para el procesamiento vectorial, ya que una ALU segmentada ganara tiempo solo si se alimenta con una secuencia de datos de posiciones consecutivas. La ejecución de una única operación en coma flotante aislada no se acelera con un cauce. El aumento de velocidad se consigue cuando se presenta a la ALU hasta que se ha procesado el vector completo. La operación del cauce se puede mejorar si los elementos del vector están disponibles en registros en lugar de la memoria principal. Una aproximación es el encadenamiento que nos dice que una operación vectorial puede empezar tan pronto como el primer elemento del operando vectorial esté disponible y la unidad funcional (suma, resta, multiplicación, división) esté libre. El encadenamiento hace que los resultados generados por una unidad funcional pasen inmediatamente a alimentar otra unidad funcional, y así sucesivamente.
ALU paralelas: otra forma de conseguir el procesamiento vectorial es con el uso de varias ALU en un solo procesador, bajo el control de una única unidad de control. En este caso, la unidad de control en ruta los datos hacia la ALU para que puedan funcionar en paralelo. Es también posible utilizar segmentación de cauce en cada una de las ALU paralelas. Procesadores paralelos: es necesario dividir la tarea en múltiples procesos que se ejecutan en paralelo. Esta organización es eficiente solo si se dispone de software y hardware para la coordinación efectiva de los procesadores paralelos. Múltiples unidades de control implican múltiples procesadores, por lo tanto si múltiples procesadores pueden cooperar en la ejecución de una tarea dada, se denominan procesadores paralelos.
Table of Contents
A inicios de los 50', comenzó la necesidad de crear computadoras que resuelvan problemas matemáticos de procesos reales, tales como los que aparecen en disciplinas como la aerodinámica, sismología, meteorología, física atómica, nuclear y de plasmas. Estos problemas se caracterizan por necesitar una precisión elevada y programas que realicen de forma repetitiva operaciones aritméticas en coma flotante con grandes matrices de números.
Para manejar este tipo de problemas se han desarrollado supercomputadoras, capaces de realizar cientos de millones de operaciones en como flotante por segundo, pero estas máquinas tienen un uso limitado y debido a su precio un mercado limitado. Otro tipo de sistema diseñado para las necesidades de la computación vectorial se trata de los computadores matriciales, estos no realizan procesamiento escalar y están configurados como dispositivos periféricos para que los usuarios de grandes computadoras y minicomputadoras puedan ejecutar partes vectorizadas de sus programas.
¿Cuál es la principal tarea de estos computadores?
Es realizar operaciones sobre matrices o vectores numéricos en como flotante. Estas operaciones consistirán en funciones aritméticas y lógicas aplicadas sobre las componentes de los vectores. La diferencia entre un procesador vectorial y uno escalar estriba en que el procesador vectorial puede decodificar instrucciones cuyos operandos son vectores completos.
Organización de los procesadores vectoriales
ALU segmentada: puesto que las operaciones en coma flotante son bastante complejas, existe la posibilidad de descomponer una operación en coma flotante en etapas (comparar, desplazar, sumar, normalizar), de manera que las diferentes etapas puedan operar concurrentemente sobre conjunto de datos distintos. Debe de quedar claro que esta organización es adecuada para el procesamiento vectorial, ya que una ALU segmentada ganara tiempo solo si se alimenta con una secuencia de datos de posiciones consecutivas. La ejecución de una única operación en coma flotante aislada no se acelera con un cauce. El aumento de velocidad se consigue cuando se presenta a la ALU hasta que se ha procesado el vector completo. La operación del cauce se puede mejorar si los elementos del vector están disponibles en registros en lugar de la memoria principal.
Una aproximación es el encadenamiento que nos dice que una operación vectorial puede empezar tan pronto como el primer elemento del operando vectorial esté disponible y la unidad funcional (suma, resta, multiplicación, división) esté libre. El encadenamiento hace que los resultados generados por una unidad funcional pasen inmediatamente a alimentar otra unidad funcional, y así sucesivamente.
ALU paralelas: otra forma de conseguir el procesamiento vectorial es con el uso de varias ALU en un solo procesador, bajo el control de una única unidad de control. En este caso, la unidad de control en ruta los datos hacia la ALU para que puedan funcionar en paralelo. Es también posible utilizar segmentación de cauce en cada una de las ALU paralelas.
Procesadores paralelos: es necesario dividir la tarea en múltiples procesos que se ejecutan en paralelo. Esta organización es eficiente solo si se dispone de software y hardware para la coordinación efectiva de los procesadores paralelos. Múltiples unidades de control implican múltiples procesadores, por lo tanto si múltiples procesadores pueden cooperar en la ejecución de una tarea dada, se denominan procesadores paralelos.
Enlaces externos
Construcción de un procesador vectorial para aplicaciones numéricas.Introducción a la segmentacion y a las estructuras paralelas